package com.rock.upms.api.upms.service;

import java.util.List;
import com.rock.upms.model.dto.ElementMenu;
import com.rock.upms.model.dto.RockMenu;

/**
 * 菜单服务类
 * 
 * @Description:TODO
 * @author: hotdog
 * @date: 2018年8月30日 下午4:35:03
 * @Copyright: v1.0
 *
 */
public interface IMenuService {

	/**
	 * 获取用户的系统菜单（称为系统菜单或top菜单或顶部菜单，一般用于pc端）
	 * 
	 * @param upmsUser_Id
	 * @return
	 */
	List<RockMenu> getUserPrimaryMenu(int upmsUser_Id);

	/**
	 * 获取系统菜单（用于后台菜单管理）
	 * 
	 * @return
	 */
	List<RockMenu> getPramaryMenu();

	/**
	 * 获取用户某个系统对应的菜单-递归-一般用于pc段
	 * 
	 * @param upmsUser_Id
	 *            用户表主键
	 * @param upmsPermission_id
	 *            某系统在权限表的ID
	 * @return List<RockMenu>
	 */
	List<RockMenu> getUserSubmenu(int upmsUser_Id, int upmsPermission_id);

	/**
	 * 获取子菜单（用于后台菜单管理）
	 * 
	 * @param upmsPermission_id
	 *            系统在权限表中的id
	 * @return
	 */
	List<RockMenu> getSubmenu(int upmsPermission_id);

	/**
	 * 获取用户当前菜单的下级菜单，不递归，适用于移动端菜单获取
	 * 
	 * @param upmsUser_Id
	 *            用户表id
	 * @param perentId
	 *            当前菜单id
	 * @return
	 */
	List<RockMenu> getNextFloorMenu(int upmsUser_Id, int perentId);
	/**
	 * 获取element侧边菜单
	 * @param id 系统在权限表中的id
	 * @return
	 */
	List<ElementMenu> getElementMenu(int upmsUser_Id,int perentId);
}
